// 这里的vm，就是我们在vue文件里面的this，所以我们能在这里获取vuex的变量，比如存放在里面的token变量
const install = (Vue, vm) => {
	// 此为自定义配置参数，具体参数见上方说明
	Vue.prototype.$u.http.setConfig({
		// baseUrl: 'http://192.168.3.240:8080/jeecg-boot/',
		baseUrl: 'http://117.139.118.151:8000/jeecg-boot/',
		// baseUrl: 'http://64u9hx.natappfree.cc/jeecg-boot/',
		//imageUrl: "http://chat.jumei666.com:8888/jeecg-boot/sys/common/static/",
		uplodeUrl: 'http://117.139.118.151:8000/jeecg-boot/sys/common/upload',

		loadingText: '努力加载中~',
		loadingTime: 800,
		header: {
			'Content-Type': 'application/json;charset=UTF-8'
		},
	});

	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptor.request = (config) => {
		// config.header.Jwt_Header = vm.$store.state.vuex_token;
		config.header. ["X-Access-Token"] = vm.$store.state.vuex_token;
		return config;
	}
	// 响应拦截，判断状态码是否通过
	Vue.prototype.$u.http.interceptor.response = (res) => {
		if (res.code == 200 || res.code == 0) {
			return res;
		} else if (res.code == 201) {
			// 假设201为token失效，这里跳转登录
			vm.$u.toast(res.message);
			vm.$u.route('/pages/Mine/Login/Login')
			return false;
		} else if (res.code == 401) {
			// 假设201为token失效，这里跳转登录
			vm.$u.toast(res.message);
			// setTimeout(() => {
			// 	// 此为uView的方法，详见路由相关文档
			// 	vm.$u.route('/pages/Mine/Login')
			// }, 1500)
			return false;
		} else if (res.code == 402) {
			// 假设201为token失效，这里跳转登录
			vm.$u.toast(res.message);
			// setTimeout(() => {
			// 	// 此为uView的方法，详见路由相关文档
			// 	vm.$u.route('/pages/Mine/Login')
			// }, 1500)
			return false;
		} else if (res.code == 420) {
			// 假设201为token失效，这里跳转登录
			vm.$u.route('/pages/Mine/Login/Login')
			vm.$u.toast(res.message);

			return res;
		} else if (res.code == 450) {
			// 假设201为token失效，这里跳转登录
			// vm.$u.toast(res.message);
			return res;
		} else if (res.code == 500) {
			// 假设201为token失效，这里跳转登录
			// vm.$u.route('/pages/Mine/Login/Login')
			vm.$u.toast(res.message);
			return false;
		} else {
			// 如果返回false，则会调用Promise的reject回调，
			// 并将进入this.$u.post(url).then().catch(res=>{})的catch回调中，res为服务端的返回值
			return false;
		}
	}
}

export default {
	install
}
